/*
 * 描述 @version 1 
 * Create by cy on 2018/10/12
 * */
import axios from 'axios'

//Loading 还可以以服务的方式调用。引入 Loading 服务：
import { Message,Loading } from 'element-ui'

import router from './router'
//加载动画:在请求时
let loading;
function startLoading(){
    // loading = Loading.service(options);在需要调用时：
    loading = Loading.service({
        lock:true,
        text:'拼命加载中...',
        background:'rgba(0,0,0,.7)'
    });
}
//结束动画:当响应时
function endLoading() {
    loading.close();//关闭动画
}
//请求拦截
axios.interceptors.request.use(config =>{
    //加载动画:调用startLoading函数
    startLoading();
    if (localStorage.eleToken)
        config.headers.Authorization = localStorage.eleToken;//设置请求头
    return config;
},error =>{
    //加载动画失败时
    return Promise.reject(error);
});
//响应拦截
axios.interceptors.response.use(response =>{
    //结束加载动画
    endLoading();
    return response;
},error => {
    //错误提醒:element-ui的message
    //1--结束加载动画
    endLoading();
    //2--给提示信息
    Message.error(error.response.data);
    const { status } = error.response;
    //token判断
    if(status===401){
        Message.error('token失效,请重新登录');
        localStorage.removeItem('eleToken');
        //页面跳转
        router.push('/login');
    }

    //3--返回
    return Promise.reject(error);
});

export default axios;

